﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using FlexiCommerce.Collections;
//using FlexiCommerce.Components;
//using NUnit.Framework;
//using NUnit.Framework.Extensions;

//namespace FlexiCommerce.Tests.Collections
//{
//    [TestFixture]
//    public class ParentFilterTests : FilterTestsBase
//    {
//        #region SetUp
//        Category root;
//        Category child1;
//        Category child2;
//        Category child3;
//        List<Category> allItems;

//        [SetUp]
//        public override void SetUp()
//        {
//            base.SetUp();

//            allItems = new List<Category>();
//            int i = 0;

//            allItems.Add(root = CreateOneCategory(++i, "root", null));

//            allItems.Add(child1 = CreateOneCategory(++i, "child1", root));
//            allItems.Add(child2 = CreateOneCategory(++i, "child2", root));
//            allItems.Add(child3 = CreateOneCategory(++i, "child3", root));

//            allItems.Add(CreateOneCategory(++i, "child1_" + i, child1));
//            allItems.Add(CreateOneCategory(++i, "child1_" + i, child1));
//            allItems.Add(CreateOneCategory(++i, "child1_" + i, child1));

//            allItems.Add(CreateOneCategory(++i, "child2_" + i, child2));
//            allItems.Add(CreateOneCategory(++i, "child2_" + i, child2));
//            allItems.Add(CreateOneCategory(++i, "child2_" + i, child2));

//            allItems.Add(CreateOneCategory(++i, "child3_" + i, child3));
//            allItems.Add(CreateOneCategory(++i, "child3_" + i, child3));
//            allItems.Add(CreateOneCategory(++i, "child3_" + i, child3));
//        }
//        #endregion

//        [RowTest]
//        [Row(1, 12)]
//        [Row(2, 3)]
//        [Row(3, 3)]
//        [Row(4, 3)]
//        [Row(5, 0)]
//        public void CanFilterByParentID(int parentID, int expectedCount)
//        {
//            ParentFilter<Category> filter = new ParentFilter<Category>(parentID);
//            filter.Filter(allItems);
//            Assert.AreEqual(expectedCount, allItems.Count);
//        }

//        [Test]
//        public void CanFilterByParentItem()
//        {
//            ParentFilter<Category> filter = new ParentFilter<Category>(child1);
//            filter.Filter(allItems);
//            Assert.AreEqual(3, allItems.Count);
//        }

//        [RowTest]
//        [Row(1, 12)]
//        [Row(2, 3)]
//        [Row(3, 3)]
//        [Row(4, 3)]
//        [Row(5, 0)]
//        public void CanFilterByStaticMethodParentID(int parentID, int expectedCount)
//        {
//            ParentFilter<Category>.Filter(allItems,parentID);
//            Assert.AreEqual(expectedCount, allItems.Count);
//        }

//        [Test]
//        public void CanFilterByStaticMethodParentItem()
//        {
//            ParentFilter<Category>.Filter(allItems, child1);
//            Assert.AreEqual(3, allItems.Count);
//        }
//    }
//}
